//******************************************************************** // // Representerer en tabell implementasjon av samling kø. // front til køen er i posisjon 0. //******************************************************************** class TabellKø implements KøADT { private final int STDKAPASITET = 100; private int bak; private T[] kø; /****************************************************************** Oppretter en tom kø med standard størrelse. ******************************************************************/ public TabellKø() { bak = 0; kø = (T[])(new Object[STDKAPASITET]); } /****************************************************************** Oppretter en tom kø med spesifisert kapasitet.. ******************************************************************/ public TabellKø (int startKapasitet) { bak = 0; kø = (T[])(new Object[startKapasitet]); } /****************************************************************** Legger til et spesifisert elemnt bak i køen, utvider hvis nødvendig ******************************************************************/ public void innKø(T element) { if (antall() == kø.length) utvid(); kø[bak] = element; bak++; } /****************************************************************** Fjerner elementet foran i køen. ******************************************************************/ public T utKø() { T resultat = null; if (!erTom()) resultat = kø[0]; bak--; /** flytter the elementene en plass frem */ for (int søk=0; søk < bak; søk++) kø[søk] = kø[søk+1]; kø[bak] = null; return resultat; } /****************************************************************** Returnerer elementet foran. ******************************************************************/ public T første() { T resultat = null; if (!erTom()) resultat = kø[0]; return resultat; } /****************************************************************** Returnrer sann hvis køen er tom, usann ellers.. ******************************************************************/ public boolean erTom() { return (bak == 0); } /****************************************************************** Returnerer antall elemnter i køen. ******************************************************************/ public int antall() { return bak; } /****************************************************************** Returnnrer en strengrepresentasjon av elemntene i køen. ******************************************************************/ public String toString() { String resultat = ""; for (int søk=0; søk < bak; søk++) resultat = resultat + kø[søk].toString() + "\n"; return resultat; } /****************************************************************** Oppretter en ny tabell større for å lagre elmentene. ******************************************************************/ private void utvid() { T[] hjelpetabell = (T[])(new Object[kø.length*2]); for (int søk =0; søk < kø.length; søk++) hjelpetabell[søk] = kø[søk]; kø = hjelpetabell; } }